package pe.com.ztaxi.taxis.controller;

import java.security.Principal;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.client.RestTemplate;

import pe.com.ztaxi.taxis.model.Conductor;
import pe.com.ztaxi.taxis.model.Destino;
import pe.com.ztaxi.taxis.model.Empresa;
import pe.com.ztaxi.taxis.model.FiltroHistorial;
import pe.com.ztaxi.taxis.model.OrdenServicio;
import pe.com.ztaxi.taxis.model.Pasajero;
import pe.com.ztaxi.taxis.model.Punto;
import pe.com.ztaxi.taxis.model.Usuario;
import pe.com.ztaxi.taxis.model.Vehiculo;
import pe.com.ztaxi.taxis.service.ConductorService;
import pe.com.ztaxi.taxis.service.EmpresaService;
import pe.com.ztaxi.taxis.service.JasperReportsService;
import pe.com.ztaxi.taxis.service.OrdenServicioService;
import pe.com.ztaxi.taxis.service.PasajeroService;
import pe.com.ztaxi.taxis.service.TarifaService;
import pe.com.ztaxi.taxis.service.UsuarioService;
import pe.com.ztaxi.taxis.service.VehiculoService;
import pe.com.ztaxi.taxis.service.ZonaService;
import pe.com.ztaxi.taxis.util.MapsJsonBing;
import pe.com.ztaxi.taxis.util.ResponseJson;
import pe.com.ztaxi.taxis.util.TaxiJsonUtil;

import com.google.gson.Gson;

@PreAuthorize("hasAnyRole('ROLE_CLIENTE', 'ROLE_ADMIN')")
@Controller
public class ReservarServicioController {	

	@Autowired
	private UsuarioService usuarioService;
	
	@Autowired
	private PasajeroService pasajeroService;
	
	@Autowired
	private ZonaService zonaService;
	
	@Autowired
	private TarifaService tarifaService;
	
	@Autowired
	private EmpresaService empresaService;
	
	@Autowired
	private OrdenServicioService ordenServicioService;
	
	@Autowired
	private ConductorService conductorService;
	
	@Autowired
	private VehiculoService vehiculoService;
	
	@Autowired
	private TaxiJsonUtil jsonUtil;
	
	@Autowired
	private JasperReportsService jasperReportsService;
	
	@RequestMapping(value = "/serviciosRecientes", method = RequestMethod.GET)
	public String getServiciosRecientes(Model model, @RequestParam(required=false) String mensaje, Principal currentUser, HttpServletRequest request) {
		model.addAttribute("opcionMenu","ReservarServicio");
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		List<OrdenServicio> ordenesServicio;
		if(request.isUserInRole("ROLE_ADMIN")){
			ordenesServicio = ordenServicioService.buscarOrdenesPendientesEnProceso();
		} else {
			ordenesServicio = ordenServicioService.buscarOrdenesPendientesEnProceso(usuario.getEmpresa());			
		}		
		model.addAttribute("ordenesServicio",ordenesServicio);
		return "serviciosRecientes";
	}
	
	@RequestMapping(value = "/historialServicios", method = RequestMethod.GET)
	public String getHistorialServicios(Model model, @RequestParam(required=false) String mensaje, FiltroHistorial filtroHistorial, Principal currentUser, HttpServletRequest request) {
		model.addAttribute("opcionMenu","ReservarServicio");		
		List<OrdenServicio> ordenesServicio;
		if(request.isUserInRole("ROLE_ADMIN")){
			ordenesServicio = ordenServicioService.buscarOrdenesTerminadasCanceladas();
		} else {
			Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
			ordenesServicio = ordenServicioService.buscarOrdenesTerminadasCanceladas(usuario.getEmpresa());
		}		
		model.addAttribute("ordenesServicio",ordenesServicio);
		model.addAttribute("totalServicios",ordenesServicio.size());
		model.addAttribute("totalContado",ordenServicioService.getTotalContado(ordenesServicio));
		model.addAttribute("totalCredito",ordenServicioService.getTotalCredito(ordenesServicio));
		return "historialServicios";
	}
	
	@RequestMapping(value = "/historialServicios", method = RequestMethod.POST)
	public String filtrarHistorial(Model model, FiltroHistorial filtroHistorial, Principal currentUser, HttpServletRequest request) {
		model.addAttribute("opcionMenu","ReservarServicio");		
		List<OrdenServicio> ordenesServicio;
		if(request.isUserInRole("ROLE_ADMIN")){
			ordenesServicio = ordenServicioService.buscarOrdenesTerminadasCanceladas(filtroHistorial);
		} else {
			Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
			ordenesServicio = ordenServicioService.buscarOrdenesTerminadasCanceladas(usuario.getEmpresa(), filtroHistorial);
		}		
		model.addAttribute("filtrado",true);
		model.addAttribute("ordenesServicio",ordenesServicio);
		model.addAttribute("totalServicios",ordenesServicio.size());
		model.addAttribute("totalContado",ordenServicioService.getTotalContado(ordenesServicio));
		model.addAttribute("totalCredito",ordenServicioService.getTotalCredito(ordenesServicio));
		return "historialServicios";
	}
	
	@RequestMapping(value = "/crearServicio", method = RequestMethod.GET)
	public String getCrearServicio(@RequestParam(required=false) Integer codigoEmpresa, OrdenServicio ordenServicio, Model model, Principal currentUser) {
		Empresa empresa;
		if(codigoEmpresa == null){
			Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
			empresa = usuario.getEmpresa();
		} else {
			empresa = empresaService.buscarPorId(codigoEmpresa);			
		}
		model.addAttribute("opcionMenu","ReservarServicio");		
		List<Pasajero> listaPasajeros = pasajeroService.buscarPorEmpresa(empresa.getCodEmpresa(),10);
		model.addAttribute("listaPasajeros", jsonUtil.armarListaPasajeros(listaPasajeros));
		model.addAttribute("historialPasajeros", listaPasajeros);
		if(empresaService.tieneDerechoCredito(empresa)){
			model.addAttribute("derechoCredito", true);
		}
		model.addAttribute("listaCentroCostos", empresa.getCentrosCosto());
		model.addAttribute("empresa", empresa);				
		return "crearServicio";
	}
	
	@ModelAttribute("nombreEmpresa")
    public String getUsuario(Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		if(usuario.getEmpresa() != null){
			return usuario.getEmpresa().getRazonSocial();
		} else {
			return null;
		}
    }	
	
	@RequestMapping(value="/getGeocode", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)  
	public @ResponseBody String getGeocode(@RequestParam(value = "direccion") String direccion) {
		RestTemplate restTemplate = new RestTemplate();
		MapsJsonBing j = restTemplate.getForObject("http://dev.virtualearth.net/REST/v1/Locations?countryRegion=PE&adminDistrict=lima&addressLine=" + direccion + ",lima,callao&maxResults=1&key=AjU7VyzP_sCGV21oOKq91bKa2LHXKzH9lCQj7Id3ERpmdstVnDAZWvTSiGRaD3kC"
				, MapsJsonBing.class);
		ResponseJson r = new ResponseJson(j.getResourceSets()[0].getResources()[0].getGeocodePoints()[1].getCoordinates()[0],j.getResourceSets()[0].getResources()[0].getGeocodePoints()[1].getCoordinates()[1]);
	    Gson gson = new Gson();
		String json = gson.toJson(r);
		return json; 
	}
	
	@RequestMapping(value="/getTarifa", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)  
	public @ResponseBody String getTarifa(@RequestParam(value = "tipoServicio") String tipoServicio, @RequestParam(value = "idEmpresa") Integer idEmpresa, Principal currentUser) {
		Empresa empresa = empresaService.buscarPorId(idEmpresa);
		return tarifaService.obtenerTarifaPorServicio(empresa, tipoServicio).getTarifa().toString();
	}
	
	@RequestMapping(value="/agregarDestinos", produces = "application/json; charset=utf-8", method = RequestMethod.GET)  
	public @ResponseBody String agregarDestinos(@RequestParam(value = "destinos") String[] destinos, @RequestParam(value = "nuevaDireccion") String nuevaDireccion, @RequestParam(value = "origen") String[] origen, @RequestParam(value = "tipoServicio") String tipoServicio, @RequestParam(value = "empresaId") Integer empresaId, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		Empresa empresa = empresaService.buscarPorId(empresaId);
		List<Destino> listaDestinos = jsonUtil.deserializarDataTable(destinos);
		
		RestTemplate restTemplate = new RestTemplate();
		MapsJsonBing j = restTemplate.getForObject("http://dev.virtualearth.net/REST/v1/Locations?countryRegion=PE&adminDistrict=lima&addressLine=" + nuevaDireccion + ",lima,callao&maxResults=1&key=AjU7VyzP_sCGV21oOKq91bKa2LHXKzH9lCQj7Id3ERpmdstVnDAZWvTSiGRaD3kC"
				, MapsJsonBing.class);
		
		Destino nuevo = new Destino();		
		nuevo.setTarifa(0.00);
		Punto p = new Punto();
		p.setDireccion(nuevaDireccion.split(",")[0]);
		p.setLatitud(Double.parseDouble(j.getResourceSets()[0].getResources()[0].getGeocodePoints()[1].getCoordinates()[0]));
		p.setLongitud(Double.parseDouble(j.getResourceSets()[0].getResources()[0].getGeocodePoints()[1].getCoordinates()[1]));
		p.setZona(zonaService.ubicarZona(j.getResourceSets()[0].getResources()[0].getAddress().getLocality()));
		nuevo.setPuntoDestino(p);		
		
		listaDestinos.add(nuevo);
		
		if(!(origen[origen.length-3].equals("") || origen[origen.length-3].isEmpty())){
			tarifaService.actualizarTarifas(jsonUtil.prepararOrigen(origen), listaDestinos, empresa ,tipoServicio, usuario);
		}
		
		String json = jsonUtil.armarJsonDestino(listaDestinos);
		return json; 
	}
	
	@RequestMapping(value="/actualizarDestinos", produces = "application/json; charset=utf-8", method = RequestMethod.GET)  
	public @ResponseBody String actualizarDestinos(@RequestParam(value = "destinos") String[] destinos, @RequestParam(value = "origen") String[] origen, @RequestParam(value = "tipoServicio") String tipoServicio, @RequestParam(value = "empresaId") Integer empresaId, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());	
		Empresa empresa = empresaService.buscarPorId(empresaId);
		List<Destino> listaDestinos = jsonUtil.deserializarDataTable(destinos);
		if(!(origen[origen.length-3].equals("") || origen[origen.length-3].isEmpty())){
			tarifaService.actualizarTarifas(jsonUtil.prepararOrigen(origen), listaDestinos, empresa, tipoServicio, usuario);
		}
		String json = jsonUtil.armarJsonDestino(listaDestinos);
		return json; 
	}
	
	@RequestMapping(value="/eliminarDestino", produces = "application/json; charset=utf-8", method = RequestMethod.GET)  
	public @ResponseBody String eliminarDestino(@RequestParam(value = "destinos") String[] destinos, @RequestParam(value = "index") int index,  @RequestParam(value = "origen") String[] origen, @RequestParam(value = "tipoServicio") String tipoServicio, @RequestParam(value = "empresaId") Integer empresaId, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		Empresa empresa = empresaService.buscarPorId(empresaId);
		List<Destino> listaDestinos = jsonUtil.deserializarDataTable(destinos);		
		listaDestinos.remove(index);
		
		if(!(origen[origen.length-3].equals("") || origen[origen.length-3].isEmpty()) && !listaDestinos.isEmpty()){
			tarifaService.actualizarTarifas(jsonUtil.prepararOrigen(origen), listaDestinos, empresa,tipoServicio, usuario);
		}		
		String json = jsonUtil.armarJsonDestino(listaDestinos);
		return json; 
	}
	
	@RequestMapping(value="/actualizarOrigen", produces = "application/json; charset=utf-8", method = RequestMethod.GET)  
	public @ResponseBody String actualizarOrigen(@RequestParam(value = "destinos") String[] destinos, @RequestParam(value = "origen") String[] origen, @RequestParam(value = "tipoServicio") String tipoServicio,  @RequestParam(value = "empresaId") Integer empresaId, Principal currentUser) {		
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		Empresa empresa = empresaService.buscarPorId(empresaId);
		List<Destino> listaDestinos = jsonUtil.deserializarDataTable(destinos);
		String direccion = "";
		for (int i = 0; i < origen.length; i++) {
			direccion = direccion + origen[i];
			if(i < origen.length - 1){
				direccion = direccion + ",";
			}
		}	
		
		RestTemplate restTemplate = new RestTemplate();
		MapsJsonBing j = restTemplate.getForObject("http://dev.virtualearth.net/REST/v1/Locations?countryRegion=PE&adminDistrict=lima&addressLine=" + direccion + ",lima,callao&maxResults=1&key=AjU7VyzP_sCGV21oOKq91bKa2LHXKzH9lCQj7Id3ERpmdstVnDAZWvTSiGRaD3kC"
				, MapsJsonBing.class);
		Punto o = new Punto();		
		o.setZona(zonaService.ubicarZona(j.getResourceSets()[0].getResources()[0].getAddress().getLocality()));
		o.setDireccion(origen[0]);
		o.setLatitud(Double.parseDouble(j.getResourceSets()[0].getResources()[0].getGeocodePoints()[1].getCoordinates()[0]));
		o.setLongitud(Double.parseDouble(j.getResourceSets()[0].getResources()[0].getGeocodePoints()[1].getCoordinates()[1]));
		
		if(!listaDestinos.isEmpty()){
			tarifaService.actualizarTarifas(o, listaDestinos, empresa ,tipoServicio, usuario);
		}
		
		String json = jsonUtil.armarJsonDestino(listaDestinos,o);
		return json; 
	}
	
	@RequestMapping(value="/getListaPasajeros", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)  
	public @ResponseBody String getListaPasajeros(Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		List<Pasajero> listaPasajeros = pasajeroService.buscarPorEmpresa(usuario.getEmpresa().getCodEmpresa());		
		String json = jsonUtil.armarListaPasajeros(listaPasajeros);
		return json; 
	}
	
	@RequestMapping(value="/copiarOrden", produces = "application/json; charset=utf-8", method = RequestMethod.GET)  
	public @ResponseBody String copiarOrden(@RequestParam(value = "codigoOrden") Integer codigoOrden, Principal currentUser) {		
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		OrdenServicio orden = ordenServicioService.buscarPorCodigo(codigoOrden);
		tarifaService.actualizarTarifas(orden.getPuntoOrigen(), orden.getDestinos(), orden.getPasajero().getEmpresa(), orden.getTipoServicio(), usuario);	
		String json = jsonUtil.armarJsonDestino(orden.getDestinos(),orden.getPuntoOrigen(), orden.getTipoServicio());
		return json; 
	}
	
	@RequestMapping(value = "/validarRegistro", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)  
	public @ResponseBody String validarRegistro(@RequestParam(value = "pasajeros") String[] pasajeros, @RequestParam(value = "fechas") Date[] fechas,
			@RequestParam(value = "horas") String[] horas, @RequestParam(required=false) boolean modoEditar, Model model, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		List<Pasajero> listaPasajeros = jsonUtil.deserializarPasajeros(pasajeros, usuario.getEmpresa());
		List<Date> listaFechas = jsonUtil.deserializarFechas(fechas, horas);
		boolean valFechas = true;
		boolean valPasajeros = true;
		if(!modoEditar){
			valFechas = ordenServicioService.validacionFechas(listaFechas);
			valPasajeros = ordenServicioService.validacionPasajeros(listaPasajeros, usuario, listaFechas);	
		}
		int numeroOrdenes = listaFechas.size() * listaPasajeros.size();
		return jsonUtil.armarRespuestaValidacion(numeroOrdenes, valFechas, valPasajeros);		
	}
	
	@RequestMapping(value = "/registrarServicio", method = RequestMethod.POST)
	public String registrarServicio(
			@RequestParam(value = "destinos") String[] destinos,
			@RequestParam(value = "origen") String[] origen,
			@RequestParam(value = "pasajeros") String[] pasajeros,
			@RequestParam(value = "fechas") Date[] fechas,
			@RequestParam(value = "horas") String[] horas,
			@RequestParam(value = "tipoServicio") String tipoServicio,
			@RequestParam(value = "tipoVehiculo") String tipoVehiculo,
			@RequestParam(value = "maleteraAmplia") boolean maleteraAmplia,
			@RequestParam(value = "pagoAlCredito") boolean pagoAlCredito,
			@RequestParam(value = "centroCosto") Integer centroCosto,
			@RequestParam(value = "empresaId") Integer empresaId,
			Model model, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		Empresa empresa = empresaService.buscarPorId(empresaId);
		List<Pasajero> listaPasajeros = jsonUtil.deserializarPasajeros(pasajeros, empresa);
		List<Destino> listaDestinos = jsonUtil.prepararDestinos(destinos);
		Punto puntoOrigen = jsonUtil.prepararOrigen(origen);
		List<Date> listaFechas = jsonUtil.deserializarFechas(fechas, horas);
		ordenServicioService.grabarOrdenServicio(listaDestinos, puntoOrigen, listaPasajeros, listaFechas, tipoServicio, tipoVehiculo, maleteraAmplia, pagoAlCredito, usuario, centroCosto);
		return "redirect:/serviciosRecientes?mensaje=creada";
	}
	
	@RequestMapping(value = "/modificarServicio", method = RequestMethod.POST)
	public String modificarServicio(
			@RequestParam(value = "destinos") String[] destinos,
			@RequestParam(value = "origen") String[] origen,
			@RequestParam(value = "pasajeros") String[] pasajeros,
			@RequestParam(value = "fechas") Date[] fechas,
			@RequestParam(value = "horas") String[] horas,
			@RequestParam(value = "tipoServicio") String tipoServicio,
			@RequestParam(value = "tipoVehiculo") String tipoVehiculo,
			@RequestParam(value = "maleteraAmplia") boolean maleteraAmplia,
			@RequestParam(value = "pagoAlCredito") boolean pagoAlCredito,
			@RequestParam(value = "numReserva") Integer numReserva,
			@RequestParam(value = "centroCosto") Integer centroCosto,
			Model model, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		List<Pasajero> listaPasajeros = jsonUtil.deserializarPasajeros(pasajeros, usuario.getEmpresa());
		List<Destino> listaDestinos = jsonUtil.prepararDestinos(destinos);
		Punto puntoOrigen = jsonUtil.prepararOrigen(origen);
		List<Date> listaFechas = jsonUtil.deserializarFechas(fechas, horas);
		ordenServicioService.modificarOrdenServicio(listaDestinos, puntoOrigen, listaPasajeros.get(0), listaFechas.get(0), tipoServicio, tipoVehiculo, maleteraAmplia, pagoAlCredito, usuario, numReserva, centroCosto);
		return "redirect:/serviciosRecientes?mensaje=modificada";
	}
	
	@RequestMapping(value="/downloadRecientes")
	public void download(@RequestParam String type, HttpServletResponse response, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		jasperReportsService.downloadRecientes(type, response, usuario);
	}
	
	@RequestMapping(value = "/modificarServicio", method = RequestMethod.GET)
	public String getModificarServicio(@RequestParam(value = "numeroOrden") Integer numeroOrden, OrdenServicio ordenServicio, Model model, Principal currentUser) {
		OrdenServicio orden = ordenServicioService.buscarPorCodigo(numeroOrden);
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		model.addAttribute("ordenServicio", orden);
		model.addAttribute("opcionMenu","ReservarServicio");
		model.addAttribute("subTarifa", tarifaService.obtenerTarifaPorServicio(orden.getPasajero().getEmpresa(), orden.getTipoServicio()).getTarifa().toString());		
		model.addAttribute("pasajero", pasajeroService.buscarPorCodigo(orden.getPasajero().getCodigo(),10));
		if(empresaService.tieneDerechoCredito(orden.getPasajero().getEmpresa())){
			model.addAttribute("derechoCredito", true);
		}
		model.addAttribute("listaCentroCostos",orden.getPasajero().getEmpresa().getCentrosCosto());
		model.addAttribute("empresa", orden.getPasajero().getEmpresa());
		return "modificarServicio";
	}
	
//	@ModelAttribute("listaCentroCostos")
//    public List<CentroCosto> getListaCentroCostos(Principal currentUser) {
//		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
//		if(usuario.getEmpresa() != null){
//			return usuario.getEmpresa().getCentrosCosto();
//		} else {
//			return null;
//		}		
//    }
	
	@ModelAttribute("listaEmpresas")
	public List<Empresa> getListaEmpresas() {
		return empresaService.buscarTodas();
	}
	
	@RequestMapping(value = "/detalleServicio", method = RequestMethod.GET)
	public String getDetalleServicio(@RequestParam(value = "numeroOrden") Integer numeroOrden, OrdenServicio ordenServicio, Model model) {
		OrdenServicio orden = ordenServicioService.buscarPorCodigo(numeroOrden);
		model.addAttribute("ordenServicio", orden);
		model.addAttribute("opcionMenu","ReservarServicio");
		model.addAttribute("pasajero", pasajeroService.buscarPorCodigo(orden.getPasajero().getCodigo(),10));
		return "detalleServicio";
	}
	
	@RequestMapping(value="/downloadHistorial")
	public void downloadHistorial(@RequestParam String type, FiltroHistorial filtroHistorial, HttpServletResponse response, Principal currentUser) {
		Usuario usuario = usuarioService.buscarPorLogin(currentUser.getName());
		if(usuario.getPerfil().getAutoridad().equals("ROLE_ADMIN")){
			jasperReportsService.downloadHistorial(type, response, usuario, ordenServicioService.buscarOrdenesTerminadasCanceladas(filtroHistorial));
		} else {
			jasperReportsService.downloadHistorial(type, response, usuario, ordenServicioService.buscarOrdenesTerminadasCanceladas(usuario.getEmpresa(), filtroHistorial));
		}		
	}
	
	 @RequestMapping(value = "/getFotoConductor/{idConductor}", method = RequestMethod.GET)
	 @ResponseBody
	 public byte[] getFotoConductor(@PathVariable Integer idConductor){
		 Conductor conductor = conductorService.buscarPorCodigo(idConductor);
		 return conductor.getFoto();		
	 }
	 
	 @RequestMapping(value = "/getFotoVehiculo/{idVehiculo}", method = RequestMethod.GET)
	 @ResponseBody
	 public byte[] getFotoVehiculo(@PathVariable Integer idVehiculo){
		 Vehiculo vehiculo = vehiculoService.buscarPorCodigo(idVehiculo);
		 return vehiculo.getFoto();		
	 }
	 
	 @RequestMapping(value = "/cancelarServicio", method = RequestMethod.GET)
	 public String cancelarServicio(@RequestParam(value = "numeroOrden") Integer[] numeroOrden, OrdenServicio ordenServicio, Model model) {
		if(ordenServicioService.cancelarOrdenesServicio(numeroOrden)){
			return "redirect:/serviciosRecientes?mensaje=cancelada";
		} else {
			return "redirect:/serviciosRecientes?mensaje=errorCancelada";
		}
		
	 }
	 
	@RequestMapping(value = "/refrescarServiciosRecientes", method = RequestMethod.GET)
	public String getUnidadesCercanas(Model model){
		List<OrdenServicio> ordenesServicio = ordenServicioService.buscarOrdenesPendientesEnProceso();
		model.addAttribute("ordenesServicio", ordenesServicio);
		return "ajaxServiciosRecientes-refrescar";		
	}
}
